/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Marcel
 */
public class VetorDeReais {
    private double[] vetor;

    public VetorDeReais(int tamanho){
        vetor = new double[tamanho];
    }

    // item a
    public boolean setValor(int indice, double valor){
        if (indice >= 0 && indice < vetor.length){
            vetor[indice] = valor;
            return true;
        }
        else
            return false;
    }

    // item b
    public double multiplica(VetorDeReais outro){
        if (!this.validaVetores(outro))
            return Double.MIN_VALUE;

        double m = 0;

        for (int i=0, j=vetor.length-1; i < vetor.length; i++,j--){
            m += vetor[i]* outro.getValor(j);
        }
        return m;
    }

    private boolean validaVetores(VetorDeReais outro){
        return (this.getTamanho() == outro.getTamanho());
    }

    public int getTamanho() {
        return this.vetor.length;
    }

    public double getValor(int indice){
        return vetor[indice];
    }

    public VetorDeReais divide(VetorDeReais outro){
        if (!this.validaVetores(outro))
            return null;

        VetorDeReais novo = new VetorDeReais(this.getTamanho());
        double valor;
        for (int i=0; i < vetor.length; i++){
            valor = vetor[i] / outro.getValor(i);
            novo.setValor(i, valor);
        }

        return novo;
    }

    // item d
    public int getQuantidadePares() {
        int total = 0;
        for (int i=0; i < vetor.length; i++){
            if ((long)vetor[i] % 2 == 0)
                total++;
        }
        return total;
    }

    // item e
    public void inverte() {
        double temp;
        for (int i=0; i < vetor.length/2; i++){
            temp = vetor[i];
            vetor[i] = vetor[vetor.length-1-i];
            vetor[vetor.length-1-i] = temp;
        }
    }

    // item f
    public double getMaiorDiferenca() {
        double maiorDiferenca = Double.MIN_VALUE;
        double diferenca;
        for (int i=1; i < vetor.length; i++){
            diferenca = Math.abs(vetor[i-1] - vetor[i]);
            if (diferenca > maiorDiferenca)
                maiorDiferenca = diferenca;
        }
        return maiorDiferenca;
    }
}
